#ifndef NETWORKASSISTANT_H
#define NETWORKASSISTANT_H

#include <QDialog>
#include <QUdpSocket>
#include <QHostInfo>
#include <QNetworkInterface>

namespace Ui {
class NetworkAssistant;
}

class NetworkAssistant : public QDialog
{
    Q_OBJECT

public:
    explicit NetworkAssistant(QWidget *parent = nullptr);
    ~NetworkAssistant();

private:
    Ui::NetworkAssistant *ui;
     /* Udp通信套接字 */
    QUdpSocket *udpSocket;
    /* 存储本地的 ip 列表地址 */
    QList<QHostAddress> IPlist;
    /* 获取本地的所有 ip */
    void getLocalHostIP();
private slots:
    /* 绑定端口 */
    void bindPort();

    /* 解绑端口 */
    void unbindPort();
    /* 清除文本框时的内容 */
    void clearTextBrowser();

    /* 接收到消息 */
    void receiveMessages();

    /* 发送消息 */
    void sendMessages();

    /* 广播消息 */
    void sendBroadcastMessages();

    /* 连接状态改变槽函数 */
    void socketStateChange(QAbstractSocket::SocketState state);

    // 退出网络助手
    void ExitWindow();
};

#endif // NETWORKASSISTANT_H
